:: Double colons to start a line mark comments
:: choose compile from file build properties


int outputwaveform P(( double*, long, double, double ));
int cleartask P((int));

:Begin:
:Function:       serialportcommunicatecpp
:Pattern:        SerialPortCommunicateCpp[L_List]
:Arguments:      {L }
:ArgumentTypes:  {Manual}
:ReturnType:     Manual
:End:
:Evaluate: SerialPortCommunicateCpp::usage = "Send to serial port"

:Begin:
:Function:       runtask
:Pattern:        RunTask[task__]
:Arguments:      { task }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:
:Evaluate: RunTask::usage = "RunTask(taskHandle) is the one C function that bypassed the package for efficiency reassons use with option setup only"


:Begin:
:Function:       getvoltagescpp
:Pattern:        GetVoltagesCpp[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:
:Evaluate: GetVoltagesCpp::usage = "GetVoltagesCpp[L_List] has same functionality as getvoltages but uses new Job class"

:Begin:
:Function:       getvoltagessoftwaretrigcpp
:Pattern:        GetVoltagesSoftwareTrig[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:
:Evaluate: GetVoltagesSoftwareTrig::usage = "GetVoltageSoftwareTrig uses the options cpp class and job class returns \
 a list of two arrays the post-trig and pretrigger samples"

:Begin:
:Function:       getvoltagesdigitaltrigcpp
:Pattern:        GetVoltagesDigitalTrig[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:
:Evaluate: GetVoltagesDigitalTrig::usage = "GetVoltageDigitalTrig uses the options cpp class and job class returns \
 a list of on or two arrays"

:Begin:
:Function:       cleartask
:Pattern:        ClearTask[task_Integer]
:Arguments:      { task }
:ArgumentTypes:  { Integer }
:ReturnType:     Integer
:End:
:Evaluate: cleartask::usage = "cleartask"

:Begin:
:Function:       outputwaveform
:Pattern:        OutputWaveform[data_List,freq_Real,numPeriods_Real]
:Arguments:      { data, freq ,numPeriods}
:ArgumentTypes:  { RealList, Real , Real}
:ReturnType:     Integer
:End:

:Evaluate: outputwaveform::usage = "OutputWaveform[data,frequency,numPeriods] Set numPeriods to -1.0 for continuous operation"

:Begin:
:Function:       outputwaveformcpp
:Pattern:        OutputWaveformCpp[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:

:Evaluate: outputwaveformccp::usage = "INternal function either continuous or finite number of periods"


:Begin:
:Function:       outputvoltage
:Pattern:        OutputVoltage[voltage_Real]
:Arguments:      { voltage }
:ArgumentTypes:  { Real }
:ReturnType:     Integer
:End:

:Evaluate: OutVoltage::usage = "OutputVoltages[voltage] causes DAQ to produce voltage on A0"

